/**
 * 图标数据获取
 */
var myChart;

var locat = (window.location+'').split('/'); 
			var radius = 120;
			var dtr = Math.PI / 180;
			var d = 300;
			var mcList = [];
			var active = true;
			var lasta = 1;
			var lastb = 1;
			var distr = true;
			var tspeed = 5;
			var size = 250;
			var mouseX = 4;
			var mouseY = 0;

			var howElliptical = 1;

			var aA = null;
			var oDiv = null;

			var ajax = null;

			window.onload = function() {
				if('main'== locat[3]) {
					locat =  locat[0]+'//'+locat[2];
				} else {
					locat =  locat[0]+'//'+locat[2]+'/'+locat[3];
				};
				// 调用ajax获取数据
				getdata();
			};
			
			function getEaharts(element) {
				myChart = echarts.init(document.getElementById(element));
				return myChart;
			}

			// 填充数据
			function putdata() {
				var i = 0;
				var oTag = null;
				oDiv = document.getElementById('tagsList');
				aA = oDiv.getElementsByTagName('a');
				for(i = 0; i < aA.length; i++) {
					oTag = {};

					oTag.offsetWidth = aA[i].offsetWidth;
					oTag.offsetHeight = aA[i].offsetHeight;
					// 放入数据
					mcList.push(oTag);
				}

				sineCosine(0, 0, 0);

				positionAll();

				oDiv.onmouseover = function() {
					active = true;
				};

				oDiv.onmouseout = function() {
					active = false;
				};

				oDiv.onmousemove = function(ev) {
					var oEvent = window.event || ev;

					mouseX = oEvent.clientX - (oDiv.offsetLeft + oDiv.offsetWidth / 2);
					mouseY = oEvent.clientY - (oDiv.offsetTop + oDiv.offsetHeight / 2);
					// 控制旋转速度
					mouseX /= 30;
					mouseY /= 30;
				};
				setInterval(update, 30);
			};

			function update() {
				var a;
				var b;

				if(active) {
					a = (-Math.min(Math.max(-mouseY, -size), size) / radius) * tspeed;
					b = (Math.min(Math.max(-mouseX, -size), size) / radius) * tspeed;
				} else {
					a = lasta * 1;
					b = lastb * 1;
				}

				lasta = a;
				lastb = b;

				if(Math.abs(a) <= 0.01 && Math.abs(b) <= 0.01) {
					return;
				}

				var c = 0;
				sineCosine(a, b, c);
				for(var j = 0; j < mcList.length; j++) {
					var rx1 = mcList[j].cx;
					var ry1 = mcList[j].cy * ca + mcList[j].cz * (-sa);
					var rz1 = mcList[j].cy * sa + mcList[j].cz * ca;

					var rx2 = rx1 * cb + rz1 * sb;
					var ry2 = ry1;
					var rz2 = rx1 * (-sb) + rz1 * cb;

					var rx3 = rx2 * cc + ry2 * (-sc);
					var ry3 = rx2 * sc + ry2 * cc;
					var rz3 = rz2;

					mcList[j].cx = rx3;
					mcList[j].cy = ry3;
					mcList[j].cz = rz3;

					per = d / (d + rz3);

					mcList[j].x = (howElliptical * rx3 * per) - (howElliptical * 2);
					mcList[j].y = ry3 * per;
					mcList[j].scale = per;
					mcList[j].alpha = per;

					mcList[j].alpha = (mcList[j].alpha - 0.6) * (10 / 6);
				}
				doPosition();
				depthSort();
			}

			function depthSort() {
				var i = 0;
				var aTmp = [];

				for(i = 0; i < aA.length; i++) {
					aTmp.push(aA[i]);
				}

				aTmp.sort(
					function(vItem1, vItem2) {
						if(vItem1.cz > vItem2.cz) {
							return -1;
						} else if(vItem1.cz < vItem2.cz) {
							return 1;
						} else {
							return 0;
						}
					}
				);

				for(i = 0; i < aTmp.length; i++) {
					aTmp[i].style.zIndex = i;
				}
			}

			function positionAll() {
				var phi = 0;
				var theta = 0;
				var max = mcList.length;
				var i = 0;

				var aTmp = [];
				var oFragment = document.createDocumentFragment();

				// 随机排序
				for(i = 0; i < aA.length; i++) {
					aTmp.push(aA[i]);
				}

				aTmp.sort(
					function() {
						return Math.random() < 0.5 ? 1 : -1;
					}
				);

				for(i = 0; i < aTmp.length; i++) {
					oFragment.appendChild(aTmp[i]);
				}

				oDiv.appendChild(oFragment);

				for(var i = 1; i < max + 1; i++) {
					if(distr) {
						phi = Math.acos(-1 + (2 * i - 1) / max);
						theta = Math.sqrt(max * Math.PI) * phi;
					} else {
						phi = Math.random() * (Math.PI);
						theta = Math.random() * (2 * Math.PI);
					}
					// 坐标变换
					mcList[i - 1].cx = radius * Math.cos(theta) * Math.sin(phi);
					mcList[i - 1].cy = radius * Math.sin(theta) * Math.sin(phi);
					mcList[i - 1].cz = radius * Math.cos(phi);

					aA[i - 1].style.left = mcList[i - 1].cx + oDiv.offsetWidth / 2 - mcList[i - 1].offsetWidth / 2 + 'px';
					aA[i - 1].style.top = mcList[i - 1].cy + oDiv.offsetHeight / 2 - mcList[i - 1].offsetHeight / 2 + 'px';
				}
			}

			function doPosition() {
				var l = oDiv.offsetWidth / 2;
				var t = oDiv.offsetHeight / 2;
				for(var i = 0; i < mcList.length; i++) {
					aA[i].style.left = mcList[i].cx + l - mcList[i].offsetWidth / 2 + 'px';
					aA[i].style.top = mcList[i].cy + t - mcList[i].offsetHeight / 2 + 'px';

					aA[i].style.fontSize = Math.ceil(12 * mcList[i].scale / 2) + 8 + 'px';

					aA[i].style.filter = "alpha(opacity=" + 100 * mcList[i].alpha + ")";
					aA[i].style.opacity = mcList[i].alpha;
				}
			}

			function sineCosine(a, b, c) {
				sa = Math.sin(a * dtr);
				ca = Math.cos(a * dtr);
				sb = Math.sin(b * dtr);
				cb = Math.cos(b * dtr);
				sc = Math.sin(c * dtr);
				cc = Math.cos(c * dtr);
			}

			function getdata() {
				var url = locat + "/datastatistics/getdata.do";
				try {
					ajax = new XMLHttpRequest();
				} catch(e) {
					try {
						ajax = new ActiveXObject("Msxml2.XMLHTTP");
					} catch(e) {

						try {
							ajax = new ActiveXObject("Microsoft.XMLHTTP");
						} catch(e) {
							alert("您的浏览器不支持AJAX！");
							return false;
						}
					}
				}
				ajax.open("post", url, true);
				ajax.send();
				ajax.onreadystatechange = function() {
					// 请求成功
					if(ajax.readyState == 4 && ajax.status == 200) {
						var data = ajax.responseText;
						var jsondata = JSON.parse(data);
						console.log(jsondata);
						for(var key in jsondata) {
							// 云图
							if(key == "sourList"){
								for(var value in jsondata[key]) {
									var element = document.createElement('a');
									var node = document.createTextNode(jsondata[key][value].source);
									element.appendChild(node);
									var temp = document.getElementById("tagsList");
									temp.appendChild(element);
								}
							}
							// 饼图
							if(key == "provinceList"){
								for(var value in jsondata[key]) {
									setCharts(jsondata[key]);
								}
							}
						};
					}
					putdata();
				} 
			}
			
			function setCharts(data){
				myChart = getEaharts('main');
				//myChart.hideLoading();
            	//option.series[0].data = d;
            	myChart.setOption(createOptions(data));
			}
			
			function createOptions(data) {
				var option = {
					    title : {
					        text: '标题',
					        x:'center'
					    },
					    tooltip : {
			            	show: true,
			                trigger: 'item'
			            },
					    legend: {
					        orient: 'vertical',
					        left: 'left'
					    },
					    series : [
					        {
					            name: '数据项',
					            type: 'pie',
					            radius : '55%',
					            data:data,
					            itemStyle: {
					                emphasis: {
					                    shadowBlur: 10,
					                    shadowOffsetX: 0,
					                    shadowColor: 'rgba(0, 0, 0, 0.5)'
					                }
					            }
					        }
					    ]
					};
				return option;
			}
